package com.jinghangzz.shop.goods.service;

import java.util.List;
import java.util.Map;

import com.alibaba.fastjson.JSONObject;
import com.jinghangzz.shop.common.util.PageInfoUtil;
import com.jinghangzz.shop.goods.pojo.AGoods;
import com.jinghangzz.shop.goods.pojo.AGoodsBrand;
import com.jinghangzz.shop.goods.pojo.AGoodsCate;

/**
 * 商品模块的Service
 * @author TeaBig
 *
 */
public interface IGoodsService
{
	/*==========品牌表模块操作开始===============*/
	/**
	 * 查询一条品牌记录
	 * @param condMap	查询条件
	 * @return	返回品牌的对象
	 */
	AGoodsBrand findOneGoodsBrandService(Map<String, Object> condMap);
	
	/**
	 * 查询多条品牌记录
	 * 
	 * 支持查询多条记录
	 * 支持搜索
	 * 支持分页;
	 * 
	 * @param condMap	查询条件
	 * @return	返回品牌的集合
	 */
	List<AGoodsBrand> findCondListGoodsBrandService(PageInfoUtil pageInfoUtil,
			Map<String, Object> condMap);
	
	/**
	 * 保存一条品牌记录
	 * @return
	 * 返回此sql语句对数据库的影响条数
	 * 我还想返回主键;
{
	响应码
	"code":"0",
	响应信息
	"info":"成功"
	数据
	"data":
	{
	    	影响条数
		"effect":""
		主键
		"id":""
	}
}
	fastjson:
	 */
	JSONObject saveOneGoodsBrandService(AGoodsBrand goodsBrand)throws Exception;
	
	/**
	 * 更新一条品牌记录
	 * @return
	 */
	JSONObject updateOneGoodsBrandService(AGoodsBrand goodsBrand)throws Exception;
	
	/**
	 * 更新一条品牌记录
	 * @param paramsMap 存储的是和上传文件相关的信息
	 * @return
	 */
	JSONObject updateOneGoodsBrandService(AGoodsBrand goodsBrand,Map<String, Object> paramsMap)throws Exception;
	
	/**
	 * 删除批量品牌记录
	 * @return
	 */
	JSONObject deleteBatchGoodsBrandService(Map<String, Object> condMap)throws Exception;
	/*==========品牌表模块操作结束===============*/
	
	/*---- 商品分类操作开始 ----*/
	/**
	 * 保存一条商品分类
	 * @param goodsCate	保存的对象
	 * @return	json:{"code":"0","info":"成功","data":{"effect":"","id":""}}
	 */
	JSONObject saveOneGoodsCateService(AGoodsCate goodsCate);
	
	/**
	 * 更新一条商品分类
	 * @param goodsCate
	 * @return
	 */
	JSONObject updateOneGoodsCateService(AGoodsCate goodsCate);
	
	/**
	 * 删除一条商品分类
	 * @param goodsCate
	 * @return
	 */
	JSONObject deleteOneGoodsCateService(AGoodsCate goodsCate);
	
	/**
	 * 查询一条商品分类
	 * @param condMap	查询条件
	 * @return	返回商品分类
	 */
	AGoodsCate findOneGoodsCateService(Map<String, Object> condMap);
	
	/**
	 * 查询多条商品分类
	 * @param pageInfoUtil	分页对象:如果为null,不分页,如果不为空,分页
	 * @param condMap	查询条件
	 * @return	返回多条记录
	 */
	List<AGoodsCate> findCondListGoodsCateService(PageInfoUtil pageInfoUtil,Map<String, Object> condMap);
	/*---- 商品分类操作结束 ----*/
	
	/*---- 商品操作开始 ----*/
	/**
	 * 保存一条商品
	 * @param goods	保存的对象
	 * @return	json:{"code":"0","info":"成功","data":{"effect":"","id":""}}
	 */
	JSONObject saveOneGoodsService(AGoods goods);
	
	/**
	 * 更新一条商品
	 * @param goods
	 * @return
	 */
	JSONObject updateOneGoodsService(AGoods goods);
	
	/**
	 * 删除一条商品
	 * @param goods
	 * @return
	 */
	JSONObject deleteOneGoodsService(AGoods goods);
	
	/**
	 * 查询一条商品
	 * @param condMap	查询条件
	 * @return	返回商品
	 */
	AGoods findOneGoodsService(Map<String, Object> condMap);
	
	/**
	 * 查询多条商品
	 * @param pageInfoUtil	分页对象:如果为null,不分页,如果不为空,分页
	 * @param condMap	查询条件
	 * @return	返回多条记录
	 */
	List<AGoods> findCondListGoodsService(PageInfoUtil pageInfoUtil,Map<String, Object> condMap);
	/*---- 商品操作结束 ----*/
}
